package Servidor;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import javax.swing.JOptionPane;
import javax.swing.UIManager;

import Ventanas.admin.PanelInicialA;
import Ventanas.admin.VentanaA;
import util.GetFrame;
import util.SocketManager;

public class Servidor {
	public static final int puerto=3000;
	public static int maximoConexiones=5;
	public static int usuariosConectados=0;
	public static List<SocketManager> sockets = new ArrayList<SocketManager>();




	public static void main(String [] args)
	{
		//Look & Feel Nimbus
		for(UIManager.LookAndFeelInfo laf:UIManager.getInstalledLookAndFeels()){
			if("Nimbus".equals(laf.getName()))
				try {
					UIManager.setLookAndFeel(laf.getClassName());
				} catch (Exception ex) {
				}
		}
		 PanelInicialA ventana = new PanelInicialA(new VentanaA());
		 ServerSocket serverSocket = null;
		try {
			serverSocket = new ServerSocket(puerto);
		} catch (IOException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		try{
			System.out.println("LLEGO AQUI");
			while(usuariosConectados<GetFrame.getVentanaA(ventana).getMaximoConexiones())
			{
				System.out.println("Entro al while");
			Socket socket=serverSocket.accept();
			System.out.println("Acepto la conexion");
			SocketManager socketManager=new SocketManager(socket);
			System.out.println("Creo el socket");
			System.out.println(GetFrame.getVentanaA(ventana).getMaximoConexiones());
			System.out.println("ME HE CONECTADO");
			ventana.insertarSocket(socketManager);
			Peticion peticion = new Peticion(socketManager);
			peticion.run();
			sockets.add(socketManager);
			
			usuariosConectados++;

			}
			
			{
				System.out.println("NO ME PUEDO CONECTAR");
				
			}
		}catch(IOException e)
		{
				e.printStackTrace();
		}
	}


}


